There are conventional techniques where a user is allowed to perform an operation (pointing operation) of specifying a position in a space or on a surface by moving a controller device. For example, with conventional coordinate calculation devices, it is possible to calculate coordinates in accordance with the attitude of the controller device as coordinates (pointing coordinates) representing a position that is pointed with the controller device. This coordinate calculation device arranges a surface (a two-dimensional coordinate system) in a predetermined space, and calculates, as the pointing coordinates, coordinates of the intersection between this surface and a line segment extended from a predetermined position in a direction in accordance with the attitude of the controller device. Then, two-dimensional pointing coordinates can be calculated based on the attitude of the controller device, and the user can perform the pointing operation by changing the attitude of the controller device.
With the coordinate calculation device described above, the user can arrange a two-dimensional coordinate system used for calculating the pointing coordinates at any position. That is, in response to a user performing a predetermined setting operation, a two-dimensional coordinate system is set in a direction (the specified direction) that is specified by the controller device at the point in time of the setting operation. Then, as a two-dimensional coordinate system is arranged at a position in front of the controller device in the specified direction specified by the controller device, a player can place two-dimensional coordinates at any position, and can therefore perform the pointing operation by pointing the controller device in an intended direction.
Here, where a predetermined object (e.g., a two-dimensional coordinate system) is set in the specified direction of the controller device, if the object is always set in a predetermined direction, the object may not be set in an appropriate direction.
Therefore, the present specification discloses an information processing system, etc., in which a predetermined object (a two-dimensional coordinate system, etc.) is set in an appropriate direction in accordance with a specified direction of the controller device. The present specification also discloses an information processing system capable of improving the controllability of a pointing operation by appropriately setting a direction of a two-dimensional coordinate system used for calculating pointing coordinates.
(1)
An example pointing system described in the present specification is a pointing system for performing a pointing operation based on an attitude of a controller device. The pointing system includes an attitude calculation unit, a coordinate system setting unit, and a coordinate calculation unit. The attitude calculation unit calculates the attitude of the controller device in a predetermined space. The coordinate system setting unit sets a predetermined coordinate system in the predetermined space. The coordinate calculation unit calculates pointing coordinates in the coordinate system based on a relationship of the attitude with respect to the coordinate system. The coordinate system setting unit can set a direction of a predetermined axis of the coordinate system with respect to a vertical direction in the predetermined space, and can set the direction of the predetermined axis of the coordinate system with respect to a direction of the controller device in the predetermined space.
The “controller device” includes any device that can be held and moved by a user, in addition to the controller or the terminal device of the embodiment to be described below.
The “pointing operation” means an operation of specifying a position in a space or on a surface. That is, to “perform a pointing operation based on an attitude of a controller device” is to specify a position in a space or on a surface by controlling the attitude of the controller device.
The “pointing system” may include a controller device and an information processing device (game device) as in the embodiment to be described below, may include one or more information processing device separate from the controller device, or may include an information processing device that is integral with the controller device.
To “calculate based on a relationship of the attitude with respect to the coordinate system” is a concept including to calculate based on the attitude with respect to the coordinate system (the attitude as viewed from the origin of the coordinate system). The “coordinate calculation unit” calculates pointing coordinates in accordance with the attitude.
To “set a direction of a predetermined axis of the coordinate system with respect to a vertical direction in the predetermined space” is a concept including to set a predetermined axis with a certain inclination (direction) with respect to the vertical direction. For example, the coordinate system setting unit may set the predetermined axis so that the predetermined axis coincides with the vertical direction. To “set the direction of the predetermined axis of the coordinate system with respect to a direction of the controller device in the predetermined space” is a concept including to set a predetermined axis with a certain inclination (direction) with respect to the controller device.
The “coordinate system setting unit” only needs to be able to set the direction of the predetermined axis with respect to the vertical direction in the predetermined space or the direction of the controller device. The “coordinate system setting unit” may set the direction of the predetermined axis using two different references at the same time, or may set the direction of the predetermined axis using one of the references.
With the configuration (1) above, the pointing system can set the direction of the coordinate axis with respect to two different directions, i.e., the vertical direction in the predetermined space and the direction of the controller device. In order to set a coordinate system that is easy to operate for the user with no awkwardness, there are cases where the direction of the coordinate axis is preferably set with respect to a direction in the predetermined space and cases where the direction of the coordinate axis is preferably set with respect to the direction of the controller device, depending on the attitude of the controller device (the specified direction to be described below). With the configuration (1) above, it is possible to set a coordinate system in an appropriate direction by setting the direction of the coordinate axis selectively using one of the two different references depending on the circumstances. It is possible to improve the controllability of the pointing operation by appropriately setting the direction of the coordinate system for calculating the pointing coordinates.
(2)
The coordinate calculation unit may calculate the pointing coordinates based on a specified direction determined by the attitude of the controller device. Then, the coordinate system setting unit sets the direction of the predetermined axis of the coordinate system with respect to the vertical direction when the specified direction is closer to a horizontal direction than a predetermined reference, and sets the direction of the predetermined axis with respect to a predetermined direction of the controller device when the specified direction is closer to a vertical direction than the predetermined reference.
The “specified direction” may be a direction that is determined based on the attitude of the controller device, in addition to the direction to be described in the configuration (4) or (5) below.
With the configuration (2) above, the direction of the coordinate axis of the coordinate system can be set using different references between when the specified direction specified by the controller device is closer to the horizontal direction in the predetermined space and when the specified direction is closer to the vertical direction in the predetermined space. When the specified direction is closer to the horizontal direction, a good controllability can be achieved by setting the coordinate axis with respect to the vertical direction in the predetermined space so that the vertical direction coincides with the upward direction of the coordinate system. When the specified direction is closer to the vertical direction, a good controllability can be achieved by setting the coordinate axis with respect to the direction of the controller device so that the upward direction of the controller device coincides with the upward direction of the coordinate system. Thus, an appropriate direction of the coordinate axis when the specified direction is closer to the horizontal direction is different from that when the specified direction is closer to the vertical direction. With the configuration (2) above, since the coordinate axis is set using different references between when the specified direction is closer to the horizontal direction and when the specified direction is closer to the vertical direction, the coordinate system can be set in an appropriate direction in either case.
(3)
The coordinate calculation unit may calculate pointing coordinates representing a position specified by the specified direction on a surface defined by the coordinate system. The surface may be a flat surface or a curved surface such as a spherical surface.
With the configuration (3) above, pointing coordinates are calculated, which represent a position on a straight line extended from the controller device in the specified direction or a vicinity thereof. Then, since the user can change the pointing position by changing the specified direction of the controller device, it is possible to easily perform the pointing operation using the controller device.
(4)
The controller device may have an elongated shape. Then, the specified direction is determined as a longitudinal direction of the controller device.
With the configuration (4) above, the specified direction is the longitudinal direction of the controller device having an elongated shape. Therefore, the user can easily change the specified direction when the controller device is held in one hand, and it is possible to easily perform the pointing operation.
(5)
The controller device may have a plate-like shape. Then, the specified direction is determined as a direction perpendicular to a surface of the plate-like shape of the controller device.
With the configuration (5) above, the specified direction is the direction perpendicular to the surface of the controller device having a plate-like shape. Therefore, the user can easily change the specified direction when the controller device is held (e.g., by both hands) so that the surface of the controller device faces the user, and it is possible to easily perform the pointing operation.
(6)
The coordinate system setting unit may set the coordinate system so that the predetermined axis of the coordinate system is closer to the vertical direction as the specified direction is closer to a horizontal direction, and so that the predetermined axis is closer to a predetermined direction of the controller device as the specified direction is closer to the vertical direction.
With the configuration (6) above, the coordinate system is primarily set with respect to the vertical direction of the predetermined space when the specified direction is closer to the horizontal direction, and the coordinate system is primarily set with respect to a predetermined direction of the controller device when the specified direction is closer to the vertical direction. Thus, the coordinate system can be set in an appropriate direction, irrespective of the specified direction. With the configuration (6) above, the direction of the coordinate system is set taking into consideration both of the two different references when the specified direction is about in the middle between the horizontal direction and the vertical direction. Thus, since the direction of the coordinate system is not set in an ill-balanced manner with respect to one of the vertical direction of the predetermined space and the predetermined direction of the controller device, the direction of the coordinate system is prevented from becoming significantly off the direction assumed by the user. As a result, it is possible to avoid making the user feel awkward about the direction of the coordinate system.
(7)
The coordinate system setting unit may be capable of setting the coordinate system so that a downward direction in the coordinate system extends in a direction of gravity in the predetermined space, and may be capable of setting the coordinate system so that the downward direction in the coordinate system extends in a downward direction of the controller device.
The “downward direction in the coordinate system” does not have to be a direction that is uniquely determined for the coordinate system. For example, the “downward direction in the coordinate system” may be set appropriately in accordance with the contents of the information processes performed by using the pointing coordinates, or may be set so as to correspond to the direction specified by the user through a pointing operation.
The “downward direction of the controller device” does not have to be a direction that is uniquely determined for the controller device. For example, the “downward direction of the controller device” may be determined from the shape of the controller device, or the “downward direction of the controller device” may be appropriately determined in accordance with the purpose of the controller device or the pointing operation, or the contents of the information processes performed by using the pointing coordinates.
With the configuration (7) above, the pointing system can set the coordinate system so that the downward direction in the coordinate system extends in the direction of gravity in the predetermined space, and can set the planar coordinate system so that the downward direction in the coordinate system extends in the downward direction of the controller device. Therefore, it is possible to appropriately set the direction of the coordinate system both when the direction of the coordinate system is preferably set with respect to the direction of gravity in the predetermined space (e.g., when the specified direction is closer to the horizontal direction) and when the direction of the coordinate system is preferably set with respect to the downward direction of the controller device (e.g., when the specified direction is closer to the vertical direction).
(8)
The controller device may include a sensor unit including a gyrosensor and/or an acceleration sensor. Then, the attitude calculation unit calculates the attitude of the controller device based on a detection result of the sensor unit.
With the configuration (8) above, the pointing system can easily calculate the attitude of the controller device using the detection result of a gyrosensor and/or an acceleration sensor.
(9)
An example information processing system described in the present specification sets a predetermined setting object in a virtual space based on an attitude of a controller device. The information processing system includes an attitude calculation unit, and a setting unit. The attitude calculation unit calculates the attitude of the controller device in the virtual space. The setting unit sets a direction of the setting object with respect to a vertical direction in the virtual space when a specified direction, which is determined by the attitude of the controller device, is closer to a horizontal direction in the virtual space than a predetermined reference, and sets the direction of the setting object with respect to a predetermined direction of the controller device when the specified direction is closer to the vertical direction than the predetermined reference.
With the configuration (9) above, the direction of the setting object can be set using different references between when the specified direction specified by the controller device is closer to the horizontal direction in the predetermined space and when the specified direction is closer to the vertical direction in the predetermined space. When the specified direction is closer to the horizontal direction, the setting object is preferably set with respect to the vertical direction in the predetermined space so that the vertical direction coincides with the upward direction of the setting object. When the specified direction is closer to the vertical direction, the setting object is preferably set with respect to the direction of the controller device so that the upward direction of the controller device coincides with the upward direction of the setting object. Thus, the appropriate direction of the setting object when the specified direction is closer to the horizontal direction is different from that when the specified direction is closer to the vertical direction. With the configuration (9) above, since the setting object is set using different references between when the specified direction is closer to the horizontal direction and when the specified direction is closer to the vertical direction, the setting object can be set in an appropriate direction in either case.
The present specification also discloses an example information processing device including the various units set forth in (1) to (9) above. The present specification also discloses an example non-transitory computer-readable storage medium storing an information processing program for causing a computer to function as units that are equivalent to the various units set forth in (1) to (9) above. The present specification also discloses a setting method to be carried out by the pointing system, the information processing system or the information processing device.
With the pointing system, the information processing system, the method for setting coordinate system, etc., the information processing device, and the storage medium storing an information processing program set forth above, the direction of a setting object, such as a coordinate system, is set using two different references, i.e., the direction in the predetermined space and the direction in the controller device, the setting object can be set in an appropriate direction. Where the setting object is a coordinate system for calculating pointing coordinates, the controllability of the pointing operation can be improved by appropriately setting the direction of the coordinate system.
These and other objects, features, aspects and advantages will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings.